package org.flexspeedup.blog.controllers
{
import mx.rpc.remoting.RemoteObject;

import org.flexspeedup.model.IListModel;

/**
 * Defines the interface to control blog content (posts)
 */
public interface IBlogController
{

    //--------------------------------------------------------------------------
    //
    //  Properties
    //
    //--------------------------------------------------------------------------
    
    //--------------------------------
    // blogModel
    //--------------------------------
    [Bindable(event="propertyChange")]
    /**
     * The model for this blog
     */
    function get blogModel():IListModel;
    function set blogModel(value:IListModel):void;

    //--------------------------------
    // blogService
    //--------------------------------
    /**
     * The remote object configured to communicate with the blog application
     */
    function get blogService():RemoteObject;
    function set blogService(value:RemoteObject):void;

    //--------------------------------------------------------------------------
    //
    //  Methods
    //
    //--------------------------------------------------------------------------
    
    //----------------------------------
    //  getPosts
    //----------------------------------
    /**
     * Retrieves a page of posts from the database
     */
    function getPosts(page:int = 1, pageSize:int = 10, category:String = null):void;    
}
}